package main

import (
	// "fmt"
	"log"
	"net/http"
	"github.com/gorilla/websocket"
)

// 定义一个 Go 结构体
type Message struct {
	Name    string `json:"name"`
	Content string `json:"content"`
}

type Client struct {
	Conn   *websocket.Conn
	UserID string
}
// 用于存储所有连接的客户端，key是UserID
var clients = make(map[string]*Client) 

func handleConnection(conn *websocket.Conn, userID string) {
	client := &Client{
		Conn:   conn,
		UserID: userID,
	}
	clients[userID] = client
}


// 定义升级器，将 HTTP 请求升级为 WebSocket 连接
var upgrader = websocket.Upgrader{
	CheckOrigin: func(r *http.Request) bool {
		return true // 允许来自任何来源的连接
	},
}
func handler(w http.ResponseWriter, r *http.Request) {
	// 升级 HTTP 请求为 WebSocket 连接
	conn, err := upgrader.Upgrade(w, r, nil)
	if err != nil {
		log.Println("WebSocket Upgrade Error:", err)
		return
	}
	defer conn.Close()
	for {
		// 读取客户端消息
		messageType, p, err := conn.ReadMessage()
		if err != nil {
			log.Println("Read Error:", err)
			break
		}
		// 打印客户端消息
		log.Printf("客户端消息: %s\n", p)
		log.Printf("客户messageType: %s\n", messageType)
		// 将消息发送回客户端
	// 定义一个消息对象
		// msg := Message{
		// 	Name:    "后台的哈士奇",
		// 	Content: "你好你发的消息是：",messageType,
		// }
		// jsonData, err := json.Marshal(msg)
		// if err != nil {
		// 	log.Println("Error serializing message:", err)
		// 	return
		// }
		// if err := conn.WriteMessage(, jsonData); err != nil {
		// 	log.Println("Write Error:", err)
		// 	break
		// }
	}
}

func main() {
	http.HandleFunc("/ws", handler) // 定义 WebSocket 路由
	// 启动 HTTP 服务器
	// fmt.Println("WebSocket server started on ws://localhost:8080/ws")
	err := http.ListenAndServe(":8080", nil)
	if err != nil {
		log.Fatal("ListenAndServe Error:", err)
	}
}
